package com.knife.blog.logic;

import java.util.Date;
import java.util.List;

import com.knife.blog.domain.BlogCircle;
import com.knife.blog.domain.BlogNewsDoc;
import com.knife.web.tools.IPageList;

public interface BlogNewsDocService {
	// 书写blog内容
	boolean writeBlogDoc(BlogNewsDoc doc);

        int delUserBlogNewsDir(String username);
	// 根据id返回BlogDoc
	BlogNewsDoc getBlogNewsDoc(String cid);

	// 阅读用户blog，需要进行日志处理等相关操作
	BlogNewsDoc readBlogNewsDoc(String cid);

	// 修改BlogDoc
	boolean updateBlogNewsDoc(BlogNewsDoc doc);

	// 根据ID删除BlogDoc
	boolean delBlogNewsDoc(String cid);

        int delUserBlogNewsDoc(String username);

        int batchDelBlogNewsDoc(String[] cids);
        //根据ID生成BlogDoc
        boolean generateBlogNewsDoc(String cid);

        int batchGenerateBlogNewsDoc(String[] cids);
        
	/**
	 * 得到最新的Blog文章信息列表
	 * 
	 * @param orderBy
	 *            排序字段
	 * @param elite
	 *            是否精华
	 * @param topNum
	 * @return
	 */
	List getTopBlogNewsDoc(String orderBy, int elite, int topNum);

	List getTopBlogNewsDoc(String username, String dirId, Date date1,
			Date date2, String orderBy, int elite, int topNum);

        List getTopBlogNewsDocBySql(String sqlCondition, int topNum);

        int getBlogNewsDocNum(String dirId, String username);

	// 列出某个用户第几页Blog列表
	public IPageList queryBlogNewsDoc(String username, int currentPage,
			int pageSize);
	
	//列出某个圈子第几页的文章
	public IPageList queryCircleNewsDoc(String circleSn,int currentPage,
			int pageSize);

	// 列出用户某月的Blog列表
	public IPageList queryBlogNewsDoc(String username, Date date1, Date date2,
			int currentPage, int pageSize);

	// 列出用户某月的Blog列表
	public IPageList queryBlogNewsDoc(String username, String circleSn, String dirId,
			Date date1, Date date2,String query,int currentPage, int pageSize);

}
